package com.itheima.homework11;

import java.io.File;
import java.io.FileNotFoundException;
import java.text.SimpleDateFormat;
import java.util.*;


/*
C:\Users\hldn\Desktop\day11-资料
键盘录入一个文件夹的名称，获取某个文件夹当中，最后一次修改的时间，按照先后顺序，找出10个最近浏览的文件。

文件 File 类当中 涉及到的 API：

public long lastModified() //获取最后一次访问时间，返回的是当前系统的毫秒值


 */
public class Test03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入文件夹名：");
        String path = null;
        path = sc.nextLine();

        File file = new File(path);
        if(!file.exists()){
            System.out.println("你输入的地址不存在");
        }
        if(file.isFile()){
            System.out.println("你输入的是文件，不是文件夹");
        }
        ArrayList<File> dirList = new ArrayList<>();
        ArrayList<File> fileList = new ArrayList<>();
        diGui1(file, dirList, fileList);
        long time = 0;
        //比较器
        TreeMap<Long, String> tm = new TreeMap<>(new Comparator<Long>() {
            @Override
            public int compare(Long o1, Long o2) {
                int result=(int)(o1-o2);
                return result;
            }
        });

            //遍历fileList得到修改时间，存入Map
        for (File file1 : fileList) {

            //System.out.println(time);
            time = file1.lastModified();
            tm.put(time, file1.toString());


        }
        //遍历map集合
        Set<Map.Entry<Long, String>> entries = tm.entrySet();
        int count = 0;

        for (Map.Entry<Long, String> entry : entries) {
            count++;
            if (count == 10) break;
            //转换日期格式
            Date date = new Date(entry.getKey());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            String s = sdf.format(date);
            System.out.println(s + "----" + entry.getValue());
        }


    }
//递归得到文件和文件夹
    private static void diGui1(File file, ArrayList<File> dirList, ArrayList<File> fileList) {
        if (file.isFile()) {
            fileList.add(file);
        }
        if (file.isDirectory()) {
            dirList.add(file);
            File[] files = file.listFiles();
            for (File file1 : files) {
                diGui1(file1, dirList, fileList);
            }


        }


    }

}

